package main

//https://www.cnblogs.com/liuqingzheng/p/16028169.html
import (
	"fmt"
	"strconv"
)

func main() {
	//(1)将字符串类型的整数转换为int类型
	var age = "19"
	age1, err := strconv.Atoi(age)
	if err != nil {
		fmt.Println("转换出错")
		return
	} else {
		fmt.Printf("类型是：%T，值是：%d", age1, age1)
	}

	//(2)将int类型数据转换为对应的字符串
	i := 999
	s2 := strconv.Itoa(i)
	fmt.Printf("类型是:%T 值是:%#v\n", s2, s2)

	//(3)Parse类函数用于转换字符串为给定类型的值：ParseBool()、ParseFloat()、ParseInt()、ParseUint()
	//1  字符串转布尔（1、0、t、f、T、F、true、false、True、False、TRUE、FALSE）
	res1, _ := strconv.ParseBool("false")
	res2, _ := strconv.ParseBool("f")
	fmt.Printf("类型为：%T,值为：%t", res1, res2)

	//2 字符串转int
	// base:2到36,指进制
	// bitSize:0、8、16、32、64 分别代表 int、int8、int16、int32、int64
	res3, _ := strconv.ParseInt("999", 10, 64)
	res4, _ := strconv.ParseInt("999", 10, 32)
	fmt.Printf("类型为：%T,值为：%d", res3, res4)

	//3 ParseUnit()
	//bitSize指定为几，都返回uint64，再转成相应类型不会丢失
	res5, _ := strconv.ParseUint("99", 10, 64)
	fmt.Printf("类型为：%T,值为：%d", res5, res5)

	// 4 ParseFloat()
	res6, _ := strconv.ParseFloat("8.99", 64)
	fmt.Printf("类型为：%T,值为：%f", res6, res6)

}
